package com.gator.desig_mode.dicorator;

/**
 * @author 何章怀晓 hezhanghuaixiao
 * @version V1.0
 * @desc
 */
public class Decorator extends Drink {

  private Drink drink;

  public Decorator(Drink drink) {
    this.drink = drink;
  }


  //递归计算价格 每次递归都是一层嵌套，
  //被装饰者是单一的，装饰者是多层的
  @Override
  public float cost() {
    //价格计算
    //被装饰的咖啡价格（多层嵌套） + 装饰者价格（每次的新品）
    return drink.cost() + getPrice();
  }


  @Override
  public String getDesc() {
    return super.getDesc() + " "
        + super.getPrice() + " "
        + drink.getDesc();
  }
}
